import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// 如果编辑器提示 path 模块找不到，则可以安装一下 @types/node -> npm i @types/node -D
import { resolve } from 'path'
import {
  createStyleImportPlugin,
  AntdResolve,
} from 'vite-plugin-style-import'

// https://vitejs.dev/config/
export default defineConfig({
	css: {
			//css预处理
			preprocessorOptions: {
				scss: {
				}
			}
		},
  plugins: [
	  vue(),
	  createStyleImportPlugin({
        resolves: [
          AntdResolve(),
        ],
        libs: [
          // If you don’t have the resolve you need, you can write it directly in the lib, or you can provide us with PR
          {
            libraryName: 'ant-design-vue',
            esModule: true,
            resolveStyle: (name) => {
              return `ant-design-vue/es/${name}/style/index`
            },
          },
        ],
      }),],
	  optimizeDeps: {
	      exclude: ['vue-demi']
	   },
	  build: {
	      lib: {
	        entry: resolve(__dirname, './src/views/components/ThumbnailSlide/main.js'), // 设置入口文件
	        name: 'render-ppt', // 起个名字，安装、引入用
	        fileName: (format) => `render-ppt.${format}.js` // 打包后的文件名
	      },
	      sourcemap: true, // 输出.map文件
	      rollupOptions: {
	        // 确保外部化处理那些你不想打包进库的依赖
	        external: ['vue-demi'],
	        output: {
	          // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量
	          globals: {
	            vue: 'vue-demi'
	          }
	        }
	      }
	    },
  resolve: {
    alias: {
      '@': resolve(__dirname, './src') // 设置 `@` 指向 `src` 目录
    }
  },
  base: './', // 设置打包路径
  server: {
    port: 4000, // 设置服务启动端口号
    open: true, // 设置服务启动时是否自动打开浏览器
    cors: true // 允许跨域

    // 设置代理，根据我们项目实际情况配置
    // proxy: {
    //   '/api': {
    //     target: 'http://xxx.xxx.xxx.xxx:8000',
    //     changeOrigin: true,
    //     secure: false,
    //     rewrite: (path) => path.replace('/api/', '/')
    //   }
    // }
  }
})